Method and system for facilitating real-time location sharing

ABSTRACT

Methods and systems for sharing real-time location information are disclosed herein. A computing device with processor(s) and memory displays a chat interface of a social networking platform for a conversation between a first user and a second user associated with the computing device. The computing device receives a location-sharing request from the first user to join a real-time location sharing group and, in response, displays a location-sharing message. After detecting a first user input on the location-sharing message from the second user of the computing device, the computing device replaces the chat interface with a location interface of the social networking platform, the location interface including a map overlaid with a first indicator corresponding to a respective real-time location of the first user and a second indicator corresponding to a respective real-time location of the second user.

PRIORITY CLAIM AND RELATED APPLICATION

This application is a continuation application of U.S. patentapplication Ser. No. 15/187,587, entitled “METHOD AND SYSTEM FORFACILITATING REAL-TIME LOCATION SHARING” filed on Jun. 20, 2016, whichis a continuation application of PCT Patent Application No.PCT/CN2015/070322, entitled “METHOD AND SYSTEM FOR FACILITATINGREAL-TIME LOCATION SHARING” filed on Jan. 8, 2015, which claims priorityto Chinese Patent Application No. 201410100449.5, entitled “DataProcessing Method and Apparatus Used for Location Sharing,” filed onMar. 17, 2014, all of which are incorporated by reference in theirentirety.

TECHNICAL FIELD

The present disclosure relates to the field of Internet technologies,and in particular, to a method and system for facilitating real-timelocation sharing.

BACKGROUND

With the development of Internet technologies, location sharing isfrequently used. A sharer informs others of a geographical locationwhere the sharer is located, and a person with whom the geographicallocation is shared can learn the geographical location of the sharer. Inthe prior art, during the location sharing process, a screenshot of ageographical location of a sharer on a map is presented to a person withwhom the geographical location is shared, or only a name of thegeographical location where the sharer is located is displayed. Theperson with whom the geographical location is shared clicks thescreenshot or the name to enter the map to view the location of thesharer in the map.

SUMMARY

At least the following problem(s) exist in the prior art: With existinglocation sharing, a person with whom geographical location is shared isenabled according to the shared information to view geographicallocation information of the sharer, but the sharer cannot invite otherusers to perform geographical location sharing, resulting in a singleform by which a user can perform geographical location sharing. Thesingle form by which a user performs geographical location sharing inthe prior art needs improvement.

In some embodiments, a method of facilitating real-time location sharingis performed at a computing device (e.g., client device 104, FIGS. 1 and3) with one or more processors and memory. The method includesdisplaying a chat interface of a social networking platform for aconversation between two or more users including at least a first userand a second user, where the second user is associated with thecomputing device and the first user is associated with a device otherthan the computing device. The method includes receiving alocation-sharing request from the first user to the second user in thesocial networking platform to join a real-time location sharing group.In response to receiving the location-sharing request, the methodincludes: displaying a respective message from the first user among afirst set of one or more messages in a first region of the chatinterface, where the respective message corresponds to the locationsharing request to join the real-time location sharing group; anddisplaying a location sharing status banner corresponding to at leastthe location-sharing request from the first user in a second region ofthe chat interface, where the location sharing status banner isdisplayed with a first display characteristic indicating that the seconduser of the computing device has not yet joined the real-time locationsharing group.

In some embodiments, a computing device (e.g., server system 108, FIGS.1-2; client device 104, FIGS. 1 and 3; or a combination thereof)includes one or more processors and memory storing one or more programsfor execution by the one or more processors, the one or more programsinclude instructions for performing, or controlling performance of, theoperations of any of the methods described herein. In some embodiments,a non-transitory computer readable storage medium storing one or moreprograms, the one or more programs comprising instructions, which, whenexecuted by a computing device (e.g., server system 108, FIGS. 1-2;client device 104, FIGS. 1 and 3; or a combination thereof) with one ormore processors, cause the computing device to perform, or controlperformance of, the operations of any of the methods described herein.In some embodiments, a computing device (e.g., server system 108, FIGS.1-2; client device 104, FIGS. 1 and 3; or a combination thereof)includes means for performing, or controlling performance of, theoperations of any of the methods described herein.

Various advantages of the present application are apparent in light ofthe descriptions below.

BRIEF DESCRIPTION OF THE DRAWINGS

The aforementioned features and advantages of the disclosed technologyas well as additional features and advantages thereof will be moreclearly understood hereinafter as a result of a detailed description ofpreferred embodiments when taken in conjunction with the drawings.

To describe the technical solutions in the embodiments of the presentdisclosed technology or in the prior art more clearly, the followingbriefly introduces the accompanying drawings required for describing theembodiments or the prior art. Apparently, the accompanying drawings inthe following description show merely some embodiments of the presentdisclosed technology, and persons of ordinary skill in the art may stillderive other drawings from these accompanying drawings without creativeefforts.

FIG. 1 is a block diagram of a server-client environment in accordancewith some embodiments.

FIG. 2 is a block diagram of a server system in accordance with someembodiments.

FIG. 3 is a block diagram of a client device in accordance with someembodiments.

FIGS. 4A-4N illustrate exemplary user interface for facilitatingreal-time location sharing in accordance with some embodiments.

FIG. 5 illustrates a flowchart diagram of a method of location sharingin accordance with some embodiments.

FIG. 6 illustrates a flowchart diagram of a method of location sharingin accordance with some embodiments.

FIG. 7 illustrates a flowchart diagram of a method of location sharingin accordance with some embodiments.

FIG. 8 illustrates a flowchart diagram of a method of location sharingin accordance with some embodiments.

FIGS. 9A-9D illustrate a flowchart diagram of a method of facilitatingreal-time location sharing in accordance with some embodiments.

FIG. 10 is a block diagram of an apparatus for location sharing inaccordance with some embodiments.

Like reference numerals refer to corresponding parts throughout theseveral views of the drawings.

DESCRIPTION OF EMBODIMENTS

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the subject matter presented herein. But itwill be apparent to one skilled in the art that the subject matter maybe practiced without these specific details. In other instances,well-known methods, procedures, components, and circuits have not beendescribed in detail so as not to unnecessarily obscure aspects of theembodiments.

The following clearly and completely describes the technical solutionsin the embodiments of the present application with reference to theaccompanying drawings in the embodiments of the present application.Apparently, the described embodiments are merely a part rather than allof the embodiments of the present application. All other embodimentsobtained by persons of ordinary skill in the art based on theembodiments of the present application without creative efforts shallfall within the protection scope of the present application.

As shown in FIG. 1, data processing for a social networking platform isimplemented in a server-client environment 100 in accordance with someembodiments. In accordance with some embodiments, server-clientenvironment 100 includes client-side processing 102-1, 102-2(hereinafter “client-side modules 102”) executed on a client device104-1, 104-2, and server-side processing 106 (hereinafter “server-sidemodule 106”) executed on a server system 108. Client-side module 102communicates with server-side module 106 through one or more networks110. Client-side module 102 provides client-side functionalities for thesocial networking platform and communications with server-side module106. Server-side module 106 provides server-side functionalities for thesocial networking platform for any number of client modules 102 eachresiding on a respective client device 104.

In some embodiments, server-side module 106 includes one or moreprocessors 112, messages database 114, profiles database 116, an I/Ointerface to one or more clients 118, and an I/O interface to one ormore external services 120. I/O interface to one or more clients 118facilitates the client-facing input and output processing forserver-side module 106. In some embodiments, processor(s) 112 processrequests for Internet access via an access point based on a relationshipin the social networking platform between a first account correspondingto the provider of the access point and a second account correspondingto the requestor. Messages database 114 stores messages sent by users inthe social networking platform, and profiles database 116 stores userprofiles for users of the social networking platform. I/O interface toone or more external services 120 facilitates communications with one ormore external services 122 (e.g., online or in-person retailers, bankingservices, online shopping services, account settlement services,application hosting, web hosting, or cloud-based services such as videoand/or image hosting and storage websites).

Examples of client device 104 include, but are not limited to, ahandheld computer, a wearable computing device, a personal digitalassistant (PDA), a tablet computer, a laptop computer, a desktopcomputer, a cellular telephone, a smart phone, an enhanced generalpacket radio service (EGPRS) mobile phone, a media player, a navigationdevice, a game console, a television, a remote control, a point-of-sale(POS) terminal, vehicle-mounted computer, an eBook reader, or acombination of any two or more of these data processing devices or otherdata processing devices.

Examples of one or more networks 110 include local area networks (LAN)and wide area networks (WAN) such as the Internet. One or more networks110 are, optionally, implemented using any known network protocol,including various wired or wireless protocols, such as Ethernet,Universal Serial Bus (USB), FIREWIRE, Long Term Evolution (LTE), GlobalSystem for Mobile Communications (GSM), Enhanced Data GSM Environment(EDGE), code division multiple access (CDMA), time division multipleaccess (TDMA), Bluetooth, Wi-Fi, voice over Internet Protocol (VoIP),Wi-MAX, or any other suitable communication protocol.

Server system 108 is implemented on one or more standalone dataprocessing apparatuses or a distributed network of computers. In someembodiments, server system 108 also employs various virtual devicesand/or services of third party service providers (e.g., third-partycloud service providers) to provide the underlying computing resourcesand/or infrastructure resources of server system 108. In someembodiments, server system 108 includes, but is not limited to, ahandheld computer, a tablet computer, a laptop computer, a desktopcomputer, or a combination of any two or more of these data processingdevices or other data processing devices.

Server-client environment 100 shown in FIG. 1 includes both aclient-side portion (e.g., client-side module 102) and a server-sideportion (e.g., server-side module 106). In some embodiments, dataprocessing is implemented as a standalone application installed onclient device 104. In addition, the division of functionalities betweenthe client and server portions of client-server environment 100 can varyin different embodiments. For example, in some embodiments, client-sidemodule 102 is a thin-client that provides only user-facing input andoutput processing functions, and delegates all other data processingfunctionalities to a backend server (e.g., server system 108). Althoughmany aspects of the present technology are described from theperspective of server system 108, the corresponding actions performed byclient device 104 would be apparent to ones skilled in the art withoutany creative efforts. Furthermore, some aspects of the presenttechnology may be performed by server system 108, client device 104, orserver system 108 and client device 104 cooperatively.

FIG. 2 is a block diagram illustrating server system 108 in accordancewith some embodiments. Server system 108, typically, includes one ormore processing units (CPUs) 112, one or more network interfaces 204(e.g., including I/O interface to one or more clients 118 and I/Ointerface one or more external services 120), memory 206, and one ormore communication buses 208 for interconnecting these components(sometimes called a chipset). Memory 206 includes high-speed randomaccess memory, such as DRAM, SRAM, DDR RAM, or other random access solidstate memory devices; and, optionally, includes non-volatile memory,such as one or more magnetic disk storage devices, one or more opticaldisk storage devices, one or more flash memory devices, or one or moreother non-volatile solid state storage devices. Memory 206, optionally,includes one or more storage devices remotely located from one or moreprocessing units 112. Memory 206, or alternatively the non-volatilememory within memory 206, includes a non-transitory computer readablestorage medium. In some implementations, memory 206, or thenon-transitory computer readable storage medium of memory 206, storesthe following programs, modules, and data structures, or a subset orsuperset thereof:

-   operating system 210 including procedures for handling various basic    system services and for performing hardware dependent tasks;-   network communication module 212 for connecting server system 108 to    other computing devices (e.g., client devices 104 and one or more    external services 122) connected to one or more networks 110 via one    or more network interfaces 204 (wired or wireless);-   server-side module 106, which provides server-side data processing    and functionalities for the social networking platform, including    but not limited to:    -   authentication module 214 for performing an authentication        process to validate a user account to access the social        networking platform;    -   messaging module 216 for managing and routing messages sent        between users of the social networking platform;    -   (optional) payment module 218 for processing transactions for a        respective user of the social networking platform based on        payment data in a user profile in profiles database 116        corresponding to the respective use; and location module 220 for        providing a location interface to a user of the social        networking platform with the locations of one or more users of a        location sharing group;-   server data 240 storing data for the social networking platform,    including but not limited to:    -   messages database 114 storing messages sent by users in the        social networking platform; and    -   profiles database 116 storing user profiles for users of the        social networking platform, where a respective user profile for        a user includes a user identifier (e.g., an account name or        handle), login credentials to the social networking platform,        (optionally) payment data (e.g., linked credit card information,        app credit or gift card balance, billing address, shipping        address, etc.), an IP address or preferred contact information,        group chat(s) subscribed to, contacts list (i.e., followed        public and private accounts), custom parameters for the user        (e.g., age, location, hobbies, etc.), and identified trends        and/or likes/dislikes of the user.

Each of the above identified elements may be stored in one or more ofthe previously mentioned memory devices, and corresponds to a set ofinstructions for performing a function described above. The aboveidentified modules or programs (i.e., sets of instructions) need not beimplemented as separate software programs, procedures, or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various implementations. In some implementations, memory206, optionally, stores a subset of the modules and data structuresidentified above. Furthermore, memory 206, optionally, stores additionalmodules and data structures not described above.

FIG. 3 is a block diagram illustrating a representative client device104 associated with a user in accordance with some embodiments. Clientdevice 104, typically, includes one or more processing units (CPUs) 302,one or more network interfaces 304, memory 306, and one or morecommunication buses 308 for interconnecting these components (sometimescalled a chipset). Client device 104 also includes a user interface 310.User interface 310 includes one or more output devices 312 that enablepresentation of media content, including one or more speakers and/or oneor more visual displays. User interface 310 also includes one or moreinput devices 314, including user interface components that facilitateuser input such as a keyboard, a mouse, a voice-command input unit ormicrophone, a touch screen display, a touch-sensitive input pad, agesture capturing camera, or other input buttons or controls.Furthermore, some client devices 104 use a microphone and voicerecognition or a camera and gesture recognition to supplement or replacethe keyboard. In some embodiments, client device 104 optionally includesone or more sensors 315, which provide context information as to thecurrent state of client device 104 or the environmental conditionsassociated with client device 104. Sensor(s) 315 include but are notlimited to one or more microphones, one or more cameras, an ambientlight sensor, one or more accelerometers, one or more gyroscopes, atemperature sensor, one or more motion sensors, one or more biologicalsensors (e.g., a galvanic skin resistance sensor, a pulse oximeter, andthe like), and other sensors. In some embodiments, client device 104includes a location detection device 317, such as a GPS (globalpositioning satellite) or other geo-location receiver, for determiningthe location of client device 104.

Memory 306 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM, or other random access solid state memory devices; and,optionally, includes non-volatile memory, such as one or more magneticdisk storage devices, one or more optical disk storage devices, one ormore flash memory devices, or one or more other non-volatile solid statestorage devices. Memory 306, optionally, includes one or more storagedevices remotely located from one or more processing units 302. Memory306, or alternatively the non-volatile memory within memory 306,includes a non-transitory computer readable storage medium. In someimplementations, memory 306, or the non-transitory computer readablestorage medium of memory 306, stores the following programs, modules,and data structures, or a subset or superset thereof:

-   operating system 316 including procedures for handling various basic    system services and for performing hardware dependent tasks;-   network communication module 318 for connecting client device 104 to    other computing devices (e.g., server system 108 and one or more    external services 122) connected to one or more networks 110 via one    or more network interfaces 304 (wired or wireless);-   presentation module 320 for enabling presentation of information    (e.g., a user interface for application(s) 326 or the social    networking platform, widgets, websites and web pages thereof, and/or    games, audio and/or video content, text, etc.) at client device 104    via one or more output devices 312 (e.g., displays, speakers, etc.)    associated with user interface 310;-   input processing module 322 for detecting one or more user inputs or    interactions from one of the one or more input devices 314 and    interpreting the detected input or interaction;-   web browser module 324 for navigating, requesting (e.g., via HTTP),    and displaying websites and web pages thereof;-   one or more applications 326 for execution by client device 104    (e.g., games, application marketplaces, payment platforms, and/or    other web or non-web based applications);-   client-side module 102, which provides client-side data processing    and functionalities for the social networking platform, including    but not limited to:    -   authentication module 330 for authenticating the user of client        device 104 to access his/her respective user account in the        social networking platform;    -   messaging module 332 for sending messages to and receiving        messages from other users of the social networking platform        (e.g., instant messaging, group chat, message board,        message/news feed, and the like);    -   (optional) payment module 334 for processing payments associated        with transactions initiated within the social networking        platform or at a merchant's website within web browser module        324; and    -   location providing module 336 for determining the location of        client device 104 and providing the determined location to        server system 108;-   client data 350 storing data associated with the social networking    platform, including, but is not limited to:    -   user profile 352 storing a user profile for the user of client        device 104, including, but not limited to, a user identifier        (e.g., an account name or handle), login credentials to the        social networking platform, (optionally) payment data (e.g.,        linked credit card information, app credit or gift card balance,        billing address, shipping address, etc.), an IP address or        preferred contact information, group chat(s) subscribed to,        contacts list (i.e., followed public and private accounts),        custom parameters for the user (e.g., age, location, hobbies,        etc.), and identified trends and/or likes/dislikes of the user;        and    -   user data 354 storing data authored, saved, liked, or chosen as        favorites by the user of client device 104 in the social        networking platform.

Each of the above identified elements may be stored in one or more ofthe previously mentioned memory devices, and corresponds to a set ofinstructions for performing a function described above. The aboveidentified modules or programs (i.e., sets of instructions) need not beimplemented as separate software programs, procedures, modules or datastructures, and thus various subsets of these modules may be combined orotherwise re-arranged in various implementations. In someimplementations, memory 306, optionally, stores a subset of the modulesand data structures identified above. Furthermore, memory 306,optionally, stores additional modules and data structures not describedabove.

In some embodiments, at least some of the functions of server system 108are performed by client device 104, and the corresponding sub-modules ofthese functions may be located within client device 104 rather thanserver system 108. In some embodiments, at least some of the functionsof client device 104 are performed by server system 108, and thecorresponding sub-modules of these functions may be located withinserver system 108 rather than client device 104. Client device 104 andserver system 108 shown in FIGS. 2-3, respectively, are merelyillustrative, and different configurations of the modules forimplementing the functions described herein are possible in variousembodiments.

Attention is now directed towards embodiments of user interfaces andassociated processes that may be implemented on client devices 104-1,104-2 with zero or more speakers 402, zero or more microphones 404, anda display 406. For example, display 406 is a touch screen (sometimesalso herein called a “touch screen display”) enabled to receive one ormore contacts and display information (e.g., media content, websites andweb pages thereof, and/or user interfaces for application(s) 326 or thesocial networking platform). FIGS. 4A-4N illustrate exemplary userinterfaces for facilitating real-time location sharing in accordancewith some embodiments.

Although some of the examples that follow will be given with referenceto inputs on a touch screen (where the touch sensitive surface and thedisplay are combined), in some embodiments, the device detects inputs ona touch-sensitive surface that is separate from the display. In someembodiments, the touch sensitive surface has a primary axis thatcorresponds to a primary axis on the display. In accordance with theseembodiments, the device detects contacts with the touch-sensitivesurface at locations that correspond to respective locations on thedisplay. In this way, user inputs detected by the device on thetouch-sensitive surface are used by the device to manipulate the userinterface on the display of the device when the touch-sensitive surfaceis separate from the display. It should be understood that similarmethods are, optionally, used for other user interfaces describedherein.

Additionally, while the following examples are given primarily withreference to contacts (e.g., finger inputs such as finger contacts,finger tap gestures, finger swipe gestures, etc.), it should beunderstood that, in some embodiments, one or more of the contacts arereplaced with input from another input device (e.g., a mouse-based,stylus-based, or physical button-based input). For example, a swipegesture is, optionally, replaced with a mouse click (e.g., instead of acontact) followed by movement of the cursor along the path of the swipe(e.g., instead of movement of the contact). As another example, a tapgesture is, optionally, replaced with a mouse click while the cursor islocated over the location of the tap gesture (e.g., instead of detectionof the contact followed by ceasing to detect the contact) or depressionof a physical button. Similarly, when multiple user inputs aresimultaneously detected, it should be understood that multiple computermice are, optionally, used simultaneously, or a mouse and fingercontacts are, optionally, used simultaneously.

FIGS. 4A-4F show user interface 408 displayed on a first client device104-1 (e.g., a mobile phone associated with a first user such as userXX); however, one skilled in the art will appreciate that the userinterfaces shown in FIGS. 4A-4F may be implemented on other similarcomputing devices. FIGS. 4G-4N show user interface 4100 displayed on asecond client device 104-2 (e.g., a mobile phone associated with asecond user such as user YY); however, one skilled in the art willappreciate that the user interfaces shown in FIGS. 4G-4N may beimplemented on other similar computing devices. The user interfaces inFIGS. 4A-4N are used to illustrate the processes described herein,including the methods and processes described with respect to FIGS. 5-8and 9A-9D.

FIG. 4A illustrates first client device 104-1 displaying an ongoingconversations interface 410. In FIG. 4A, ongoing conversations interface410 enables the user of first client device 104-1 (e.g., user XX) toview conversation 416 by performing an operation (e.g., a tap gesture)within the region for conversation 416 or conversation 418 by performingan operation (e.g., a tap gesture) within the region for conversation418. In FIG. 4A, conversation 416 corresponds to a conversation betweenuser XX and user YY whose avatar 420 is displayed in the region forconversation 416. The region for conversation 416 also includes unreadmessages indicator 424 indicating that user XX has two unread messagesfrom user YY within conversation 416. In FIG. 4A, conversation 418corresponds to a group chat with group XY to which user XX is a member.In FIG. 4A, avatar 422 corresponds to group chat XY.

In FIG. 4A, ongoing conversations interface 410 also includes backaffordance 412, which, when activated (e.g., with a tap gesture), causesfirst client device 104-1 to display a previous interface (e.g., a homeinterface for the social networking platform from which ongoingconversations interface 410 was reached by the user of first clientdevice 104-1) and conversation addition affordance 414, which, whenactivated (e.g., with a tap gesture), causes first client device 104-1to display a dialog for initiating a new conversation. In FIG. 4A,ongoing conversations interface 410 further includes: ongoingconversations affordance 426, which, when activated (e.g., with a tapgesture), causes first client device 104-1 to display ongoingconversations interface 410; contacts affordance 428 which, whenactivated (e.g., with a tap gesture), causes first client device 104-1to display a contact list corresponding to the user of first clientdevice 104-1; discover affordance 430, which, when activated (e.g., witha tap gesture), enables the user of first client device 104-1 todiscover new contacts; and my profile affordance 432 which, whenactivated (e.g., with a tap gesture), causes first client device 104-1to display a profile page corresponding to the user of first clientdevice 104-1 (e.g., user XX). In FIG. 4A, unread messages indicator 434indicates that user XX has two unread messages among their ongoingconversations. FIG. 4A also illustrates first client device 104-1detecting contact 436 at a location corresponding to the region forconversation 416.

FIG. 4B illustrates first client device 104-1 displaying a chatinterface 438 for a conversation between user XX (e.g., the user offirst client device 104-1) and user YY (e.g., the user of second clientdevice 104-2) in response detecting selection of the region forconversation 416 in FIG. 4A. In FIG. 4B, chat interface 438 includesback affordance 439, which, when activated (e.g., with a tap gesture),causes first client device 104-1 to display a previous interface (e.g.,ongoing conversations interface 410 in FIG. 4A) and avatar 420corresponding to user YY. In FIG. 4B, chat interface 438 also includes aplurality of messages between user XX and user YY including messages440-A, 440-D, and 440-E sent by user YY as indicated by avatar 420adjacent to messages 440-A, 440-D, and 440-E and messages 440-B and440-C sent by user XX as indicated by avatar 442 adjacent to messages440-B and 440-C. In FIG. 4B, chat interface 438 further includes:affordance 444 for recording a voice message to be sent to user YYwithin chat interface 438; text entry field 446 for entering a textmessage to be sent to user YY within chat interface 438; emojisaffordance 448, which, when activated (e.g., with a tap gesture), causesfirst client device 104-1 to display a plurality of emojis for sendingto user YY within chat interface 438; and other features affordance 450,which, when activated (e.g., with a tap gesture), causes first clientdevice 104-1 to display a plurality of other features (e.g., featurespanel 456 with features 458 in FIG. 4C). In FIG. 4B, chat interface 438further includes scroll bar 452 for displaying older messages sentbetween user XX and user YY. FIG. 4B also illustrates first clientdevice 104-1 detecting contact 454 at a location corresponding to otherfeatures affordance 450.

FIG. 4C illustrates first client device 104-1 displaying features panel456 within chat interface 438 in response to detecting selection ofother features affordance 450 in FIG. 4B. In FIG. 4C, features panel 456enables the user of first client device 104-1 (e.g., user XX) to performa plurality of features and/or functions within chat interface 438. InFIG. 4C, features panel 456 includes: images affordance 458-A foraccessing images previously captured or saved by the user of firstclient device 104-1 for sending to user YY within chat interface 438;camera affordance 458-B for capturing an image for sending to user YYwithin chat interface 438; share location affordance 458-C for sharingthe location of first client device 104-1 with user YY within chatinterface 438; share name card affordance 458-D for sharing user XX'sname card with user YY within chat interface 438; voice call affordance458-E for initiating a voice call with user YY (e.g., via VOIP or acellular network); video call affordance 458-F for initiating a videocall with user YY; favorites affordance 458-G for selecting among aplurality of user XX's most frequently used features; and other featuresaffordance 458-H for displaying other features and/or functions of thesocial networking platform. FIG. 4C also illustrates first client device104-1 detecting contact 460 at a location corresponding to sharelocation affordance 458-C.

FIG. 4D illustrates first client device 104-1 displaying options forsharing the location of first client device 104-1 with user YY withinchat interface 438 in response to detecting selection of share locationaffordance 458-C in FIG. 4C. In FIG. 4D, the options for sharing thelocation of first client device 104-1 include: a send locationaffordance 462 for sending user YY the instantaneous location of firstclient device 104-1 within chat interface 438; a real-time locationaffordance 464 for sharing the real-time location of first client device104-1 with user YY within chat interface 438; and cancel affordance 466,which, when activated (e.g., with a tap gesture), causes first clientdevice 104-1 to display a previous interface (e.g., chat interface 438in FIG. 4B). FIG. 4D also illustrates first client device 104-1detecting contact 468 at a location corresponding to real-time locationaffordance 464. In some embodiments, in response to detecting selectionof real-time location affordance 464, first client device 104-1 causes alocation sharing request (via server system 108) to be sent to user XXincluding a message (e.g., message 440-F in FIG. 4G) to view thelocation of user XX and/or share his/her own location with user XX.

FIG. 4E illustrates first client device 104-1 displaying a locationinterface in response to detecting selection of real-time locationaffordance 464 in FIG. 4D. In FIG. 4E, the location interface includes amap with a first indicator 476 showing the real-time location of user XXand avatar 442 for user XX indicating that first indicator 476corresponds to user XX. In some embodiments, the user of first clientdevice 104-1 is able to adjust the map by performing dragging gesturesso as to scan northwards, southwards, etc. In FIG. 4E, the locationinterface also includes region 470 indicating that user XX is currentlysharing his/her location (as indicated by the presence of avatar 442 inregion 470) along with (A) affordance 472, which, when activated (e.g.,with a tap gesture), causes first client device 104-1 to exit real-timelocation sharing and (B) affordance 474, which, when activated (e.g.,with a tap gesture), causes first client device 104-1 to switch to chatinterface 438 (e.g., as shown in FIG. 4B). In FIG. 4E, the locationinterface further includes affordance 478 for re-orienting the map toits original orientation (e.g., with first indicator 476 as its center)and affordance 480, which, when activated (e.g., with a press and holdgesture), causes first client device 104-1 to transmit the voice of theuser of client device 104-1 to other uses who also are sharing theirreal-time location as long as the user holds contact with affordance 480(e.g., like a walkie-talkie). FIG. 4E also illustrates first clientdevice 104-1 detecting contact 482 at a location corresponding toaffordance 474.

FIG. 4F illustrates first client device 104-1 displaying chat interface438 for the conversation between user XX (e.g., the user of first clientdevice 104-1) and user YY (e.g., the user of second client device 104-2)in response detecting selection of affordance 474 in FIG. 4E. In FIG.4F, interface 438 includes message 440-F (e.g., a location sharingrequest) sent in user YY in response to detecting selection of real-timelocation affordance 464 in FIG. 4D. For example, message 440-F indicatesthat user XX is sharing his/her location with user YY. In FIG. 4F,interface 438 also includes location sharing status banner 484indicating that user XX is sharing his/her location with user YY.

FIG. 4G illustrates second client device 104-2 displaying a chatinterface 4102 between user YY (e.g., the user of second client device104-2) and user XX (e.g., the user of first client device 104-1). InFIG. 4G, chat interface 4102 includes back affordance 4103, which, whenactivated (e.g., with a tap gesture), causes second client device 104-2to display a previous interface and avatar 442 corresponding to user XX.In FIG. 4G, chat interface 4102 also includes a plurality of messagesbetween user YY and user XX including messages 440-A, 440-D, and 440-Esent by user YY as indicated by avatar 420 adjacent to messages 440-A,440-D, and 440-E and messages 440-B, 440-C, and 440-F sent by user XX asindicated by avatar 442 adjacent to messages 440-B, 440-C, and 440-F. InFIG. 4G, chat interface 4102 further includes: affordance 444 forrecording a voice message to be sent to user XX within chat interface4102; text entry field 446 for entering a text message to be sent touser XX within chat interface 4102; emojis affordance 448, which, whenactivated (e.g., with a tap gesture), causes second client device 104-2to display a plurality of emojis for sending to user XX within chatinterface 4102; and other features affordance 450, which, when activated(e.g., with a tap gesture), causes second client device 104-2 to displaya plurality of other features (e.g., features panel 456 with features458 in FIG. 4C). In FIG. 4G, chat interface 4102 further includes scrollbar 452 for displaying older messages sent between user YY and user XX.

In FIG. 4G, chat interface 4102 further includes location sharing statusbanner 4104 indicating that user XX has shared his/her real-timelocation with user YY and further prompts user YY to share his/herreal-time location with user XX. In FIG. 4G, location sharing statusbanner 4104 is displayed with a first display characteristic (e.g., agray background) indicating that user YY has not shared his/herlocation. FIG. 4G also illustrates second client device 104-2 detectingcontact 4106 at a location corresponding to location sharing statusbanner 4104. As an alternative, FIG. 4G also illustrates second clientdevice 104-2 detecting a downwards dragging gesture with contact 4110moving from location 4112-A to location 4112-B.

FIG. 4H illustrates second client device 104-2 displaying chat interface4102 with at least one message not displayed in FIG. 4G in response todetecting the downwards dragging gesture to scroll chat interface 4102in FIG. 4G. FIG. 4H also illustrates second client device 104-2detecting contact 4114 at a location corresponding to message 440-A(e.g., an old location sharing request).

FIG. 4I illustrates second client device 104-2 displaying a locationinterface in response to detecting selection of location sharing statusbanner in FIG. 4G or message 440-A in FIG. 4H. In FIG. 4I, the locationinterface includes a map with a first indicator 476 showing thereal-time location of user XX and avatar 442 for user XX indicating thatfirst indicator 476 corresponds to user XX. In some embodiments, theuser of second client device 104-2 is able to adjust the map byperforming dragging gestures so as to scan northwards, southwards, etc.In FIG. 4I, the location interface also includes region 4116 indicatingthat user XX is currently sharing his/her location (as indicates by thepresence of avatar 442 in region 4116) along with (A) affordance 472,which, when activated (e.g., with a tap gesture), causes second clientdevice 104-2 to exit real-time location sharing and (B) affordance 474,which, when activated (e.g., with a tap gesture), causes second clientdevice 104-2 to switch to chat interface 4102 (e.g., as shown in FIG.4G). In FIG. 4I, the location interface further includes: affordance 478for re-orienting the map to its original orientation (e.g., with firstindicator 476 as its center); affordance 480, which, when activated(e.g., with a press and hold gesture), causes first client device 104-1to transmit the voice of the user of client device 104-1 to other useswho also are sharing their real-time location as long as the user holdscontact with affordance 480 (e.g., like a walkie-talkie); and shareaffordance 4118 for sharing the real-location of second client device104-2 with user XX. FIG. 4I also illustrates second client device 104-2detecting contact 4120 at a location corresponding to share affordance4118.

FIG. 4J illustrates second client device 104-2 displaying the locationinterface in response to detecting selection of location sharing statusbanner in FIG. 4G, message 440-A in FIG. 4H, or share affordance 4118 inFIG. 4I. In FIG. 4J, the location interface includes the map with (A)first indicator 476 showing the real-time location of user XX and avatar442 for user XX indicating that first indicator 476 corresponds to userXX and (B) second indicator 4122 showing the real-time location of userYY and avatar 420 for user YY indicating that first indicator 4122corresponds to user YY. In FIG. 4J, the location interface also includesregion 4116 indicating that user XX is currently sharing his/herlocation (as indicated by the presence of avatar 442 in region 4116) andthat user YY is currently sharing his/her location (as indicated by thepresence of avatar 420 in region 4116). FIG. 4J also illustrates secondclient device 104-2 detecting contact 4124 at a location correspondingto affordance 474.

FIG. 4K illustrates second client device 104-1 displaying chat interface4102 for the conversation between user YY (e.g., the user of secondclient device 104-2) and user XX (e.g., the user of first client device104-1) in response to detecting selection of affordance 474 in FIG. 4J.In FIG. 4K, location sharing status banner 4104 indicates that user YYis sharing his/her real-time location with user XX. In FIG. 4K, locationsharing status banner 4104 is displayed with a second displaycharacteristic (e.g., a green background) indicating that user YY hasshared his/her location. FIG. 4K also illustrates second client device104-2 detecting contact 4126 at a location corresponding to message440-F (e.g., the most recent location sharing request).

FIG. 4L illustrates second client device 104-2 displaying the locationinterface in response to detecting selection of message 440-F in FIG.4K. FIG. 4L also illustrates second client device 104-2 detectingcontact 4128 at a location corresponding to affordance 472.

FIG. 4M illustrates second client device 104-2 displaying prompt 4130 inresponse to detecting selection of affordance 472 in FIG. 4L. In FIG.4M, prompt 4130 includes a “Yes” affordance 4132 which enables the userof second client device 104-2 to confirm that he/she wishes to exitreal-time location sharing and a “No” affordance 4134 which enables theuser of second client device 104-2 to not exit real-time locationsharing. FIG. 4M also illustrates second client device 104-2 detectingcontact 4136 at a location corresponding to “Yes” affordance 4132.

FIG. 4N illustrates second client device 104-1 displaying chat interface4102 for the conversation between user YY (e.g., the user of secondclient device 104-2) and user XX (e.g., the user of first client device104-1) in response to detecting selection of “Yes” affordance 4132. InFIG. 4N, location sharing status banner 4104 indicates that user XX hasshared his/her real-time location with user YY and further prompts userYY to share his/her real-time location with user XX.

FIG. 5 illustrates a flowchart diagram of a method 500 of locationsharing in accordance with some embodiments. In some embodiments, method500 is performed by a computing device with one or more processors andmemory. For example, in some embodiments, method 500 is performed byclient device 104 (FIGS. 1 and 3) or a component thereof (e.g.,client-side module 102, FIGS. 1 and 3). In some embodiments, method 500is governed by instructions that are stored in a non-transitory computerreadable storage medium and the instructions are executed by one or moreprocessors of the terminal.

In some embodiments, data processing for a social networking platform isimplemented in client-server environment 100 (FIG. 1) with a serversystem 108 and client-side module 102 executed on one or more clientdevices 104 (e.g., a first client device 104-1 associated with a firstuser (user XX) and a second client device 104-2 associated with a seconduser (user YY)). In some embodiments, server system 108 (FIGS. 1-2)manages and operates the social networking platform. In someembodiments, a respective client-side module 102 (FIGS. 1 and 3) isassociated with a user account in the social networking platform thatcorresponds to a user of client device 104 (FIGS. 1 and 3).

In some embodiments, the computing device determines (502) whetherlocation sharing information exists in a conversation, where thelocation sharing information is geographical location information sharedby a first user in the social application. The conversation may be aninstant messaging conversation between two or more users within a socialapplication. If the first user initiates geographical location sharing,the computing device may detect geographical location sharinginformation. The geographical location sharing information is thegeographical location information shared by the first user, and thegeographical location sharing information may prompt the user of thecomputing device (i.e., the second user) to share geographical locationinformation. The shared geographical location information may directlydisplay geographical location of the first user, or may only prompt theuser of the computing device to share geographical location information.

When initiating geographical location sharing, the first user canperform geographical location sharing through a function menu of theirrespective computing device. For example, during a conversation betweenuser A and user B, user A initiates geographical location informationsharing through a function menu of the conversation. The computingdevice of user B detects the geographical location sharing informationfrom user A. Similarly, when the conversation is a group conversationwith more than two users, any user of the multiple users can initiategeographical location information sharing. For example, FIGS. 4A-4J showthe first user of first client device 104-1 (e.g., user XX) sending alocation-sharing request to the second user of second client device104-2 through chat interface 438 of the social networking platform,where chat interface 438 corresponds to the conversation between user XXand user YY.

In some embodiments, if the conversation includes the location sharinginformation, the computing device outputs (504) a location sharinginvitation. After the geographical location sharing information in theconversation is detected, geographical location sharing invitation isoutput to remind the user of the computing device that the first userhas already performed geographical location sharing and to prompt theuser of the computing device (i.e., the second user) to share thegeographical location information. The first user is a sharer thatinitiates geographical location sharing, and the second user is any userwith whom the geographical location is shared. FIG. 4G, for example,shows second client device 104-2 displaying chat interface 4102 withmessage 440-F indicating that user XX (i.e., the first user) has sharedhis/her real-time location with user YY (i.e., the second user). In FIG.4G, chat interface 4102 also includes location sharing status banner4104 indicating that user XX (i.e., the first user) has shared his/herreal-time location with user YY (i.e., the second user) and furtherprompts user YY to share his/her real-time location with user XX.

In the foregoing embodiment, the geographical location informationshared by the first user is detected and geographical location sharinginvitation is output, the second user is invited to participate ingeographical location information sharing, and the first user can inviteanother user by sharing the geographical location information toparticipate in the geographical location information sharing. As such,the geographical location information sharing between the first user andthe second user is no longer an instantaneous action, instead the firstuser and the second user interact with each other to performgeographical location information sharing, thereby solving the problemof a single form in which geographical location information sharing isperformed in the prior art, and providing more diversified forms inwhich the user performs geographical location information sharing.

After the geographical location sharing invitation is output, the seconduser can choose to ignore the invitation, reject the invitation, oraccept the invitation. When expecting the first user to view locationinformation of the second user, the second user accepts the geographicallocation sharing invitation of the first user, and before performinggeographical location information sharing, the second user chooseswhether to perform geographical location information sharing. Thisensures the security of private information of the second user.

Preferably, after the geographical location sharing invitationinformation is output, geographical location information shared by thesecond user based on the geographical location sharing invitationinformation is acquired. After the geographical location sharinginvitation is output, if the second user accepts the geographicallocation sharing invitation of the first user, the second user sharesthe geographical location information. Because the second user performsgeographical location sharing based on the geographical location sharinginvitation of the first user, the second user can participate ingeographical location sharing initiated by the first user, that is, thefirst user can view the geographical location information of the seconduser, and the second user can also view the geographical locationinformation of the first user.

If the second user does not accept the invitation for geographicallocation sharing, the geographical location sharing information of thesecond user does not need to be acquired. For example, after user Ainitiates geographical location sharing, the output geographicallocation sharing invitation reminds the user B to participate ingeographical location sharing, and user B can choose to reject or ignorethe geographical location sharing invitation, and can also choose toparticipate in geographical location sharing in multiple ways. Beforeuser B accepts the geographical location sharing invitation, user Acannot view the geographical location of the second user, and user B mayview the geographical location of user A, or may not view thegeographical location of user A, and after user B user participates inthe geographical location sharing, user A and user B can view thegeographical location of each other.

The geographical location information shared by the second user based onthe geographical location sharing invitation is acquired, and the seconduser participates in geographical location sharing, so that when thesecond user performs geographical location information sharing, not onlythe geographical location information is shared through the functionmenu, but also geographical location information sharing is performedthrough information of the first user, providing more diversified formsin which the second user performs geographical location sharing.

The geographical location information of the second user may be acquiredbased on the geographical location sharing invitation, and how toacquire the geographical location information of the second user basedon the geographical location sharing invitation. The data processingmethod used for location sharing of the embodiment of the presentapplication is further described in detail below with reference to theaccompanying drawings.

It should be understood that the particular order in which theoperations in FIG. 5 have been described is merely exemplary and is notintended to indicate that the described order is the only order in whichthe operations could be performed. One of ordinary skill in the artwould recognize various ways to reorder the operations described herein.Additionally, it should be noted that details of other processesdescribed herein with respect to other methods and/or processesdescribed herein (e.g., methods 600, 700, 800, and 900) are alsoapplicable in an analogous manner to method 500 described above withrespect to FIG. 5.

FIG. 6 illustrates a flowchart diagram of a method 600 of locationsharing in accordance with some embodiments. In some embodiments, method600 is performed by a computing device (e.g., associated with a seconduser) with one or more processors and memory. For example, in someembodiments, method 600 is performed by client device 104 (FIGS. 1 and3) or a component thereof (e.g., client-side module 102, FIGS. 1 and 3).In some embodiments, method 600 is governed by instructions that arestored in a non-transitory computer readable storage medium and theinstructions are executed by one or more processors of the terminal.

In some embodiments, data processing for a social networking platform isimplemented in client-server environment 100 (FIG. 1) with a serversystem 108 and client-side module 102 executed on one or more clientdevices 104 (e.g., a first client device 104-1 associated with a firstuser (user XX) and a second client device 104-2 associated with a seconduser (user YY)). In some embodiments, server system 108 (FIGS. 1-2)manages and operates the social networking platform. In someembodiments, a respective client-side module 102 (FIGS. 1 and 3) isassociated with a user account in the social networking platform thatcorresponds to a user of client device 104 (FIGS. 1 and 3).

In some embodiments, the computing device outputs (602) a text messagefrom a first user within a conversation. In some embodiments, the outputtext message is a special text message from the first user that isdifferent from an ordinary message within the conversation as it ispresented in a predetermined pattern or has a predetermined identifierfor enabling the second user to participate in geographical locationsharing based on the special text message. For example, if the outputtext message is “I [the first user] initiated location sharing,” thetext message includes an identifier indicates that a “location” isshared to remind the second user to initiate geographical locationsharing. FIG. 4G, for example, shows second client device 104-2displaying chat interface 4102 with message 440-F indicating that userXX (i.e., the first user) has shared his/her real-time location withuser YY (i.e., the second user).

In some embodiments, the computing device detects (604) a request from asecond user to participate in geographical location sharing based on thetest message. For example, the output text message may be used as afunction key, the second user clicks the text message as the request toparticipate in geographical location sharing. FIG. 4K, for example,shows second client device 104-2 detecting contact 4126 at a locationcorresponding to message 440-F (e.g., the most recent location sharingrequest).

In some embodiments, the computing device acquires (606), according tothe request, geographical location information of the second user. Afterreceiving the request from the second user, the geographical locationinformation of the second user is acquired, where the geographicallocation information of the second user can be viewed by the first user.FIG. 4L, for example, shows second client device 104-2 displaying thelocation interface in response to detecting selection of message 440-Fin FIG. 4K. In FIG. 4L, the location interface includes the map with (A)first indicator 476 showing the real-time location of user XX and avatar442 for user XX indicating that first indicator 476 corresponds to userXX and (B) second indicator 4122 showing the real-time location of userYY and avatar 420 for user YY indicating that first indicator 4122corresponds to user YY.

For example, a text message clicked by the second user is received andused as the request, the geographical location information of the seconduser is acquired according to the request, and the second user enters ageographical location information presentation page (e.g., a map) and toview a geographical location of the first user and a geographicallocation of the second user. In this way, the second user performsgeographical location information sharing based on the text message.

In the foregoing embodiment, the second user performs geographicallocation information sharing by the output text message, providing morediversified manners of participating in geographical location sharing,thereby solving the problem of a single form in which a userparticipates in geographical location sharing in the prior art, andfurther achieving an effect of diversified forms in which a userparticipates in geographical location sharing.

It should be understood that the particular order in which theoperations in FIG. 6 have been described is merely exemplary and is notintended to indicate that the described order is the only order in whichthe operations could be performed. One of ordinary skill in the artwould recognize various ways to reorder the operations described herein.Additionally, it should be noted that details of other processesdescribed herein with respect to other methods and/or processesdescribed herein (e.g., methods 500, 700, 800, and 900) are alsoapplicable in an analogous manner to method 600 described above withrespect to FIG. 6.

FIG. 7 illustrates a flowchart diagram of a method 700 of locationsharing in accordance with some embodiments. In some embodiments, method700 is performed by a computing device (e.g., associated with a seconduser) with one or more processors and memory. For example, in someembodiments, method 700 is performed by client device 104 (FIGS. 1 and3) or a component thereof (e.g., client-side module 102, FIGS. 1 and 3).In some embodiments, method 700 is governed by instructions that arestored in a non-transitory computer readable storage medium and theinstructions are executed by one or more processors of the terminal.

In some embodiments, data processing for a social networking platform isimplemented in client-server environment 100 (FIG. 1) with a serversystem 108 and client-side module 102 executed on one or more clientdevices 104 (e.g., a first client device 104-1 associated with a firstuser (user XX) and a second client device 104-2 associated with a seconduser (user YY)). In some embodiments, server system 108 (FIGS. 1-2)manages and operates the social networking platform. In someembodiments, a respective client-side module 102 (FIGS. 1 and 3) isassociated with a user account in the social networking platform thatcorresponds to a user of client device 104 (FIGS. 1 and 3).

In some embodiments, the computing device outputs (702) a picturemessage from a first user within a conversation. For example, the formof the picture message is different from that of an ordinary picturemessage. In some embodiments, the output picture message is a picturethat is output after a first user shares geographical locationinformation and displays geographical location information of ageographical user. For example, the output picture message a screenshotof a map displaying a geographical location of the first user. Thepicture message may also directly display the geographical location ofthe first user.

In some embodiments, the computing device detects (704) a request from asecond user to participate in geographical location sharing based on thepicture message. For example, the picture message is used as a functionkey, the second user clicks the picture message as the request toparticipate in geographical location sharing.

In some embodiments, the computing device displays (706) a locationpresentation page (e.g., a map) with the geographical location of thefirst user according to the request. For example, the second user clicksthe picture message, and the computing device receives the request anddisplays the location presentation page including the geographicallocation of the first user.

In some embodiments, the computing device acquires (708), according tothe request, geographical location information of the second user. Forexample, the second user performs geographical location sharing byclicking the picture message from the first user. Therefore, thegeographical location information of the second user may also bedisplayed in the location presentation page, so that the second userparticipates in geographical location sharing of the first user.

In the foregoing embodiment, if a first user performs geographicallocation sharing by initiating a picture message, a second user canshare geographical location information of the second user based on thepicture message, thereby achieving an effect of diversified forms inwhich a user participates in geographical location sharing.

It should be understood that the particular order in which theoperations in FIG. 7 have been described is merely exemplary and is notintended to indicate that the described order is the only order in whichthe operations could be performed. One of ordinary skill in the artwould recognize various ways to reorder the operations described herein.Additionally, it should be noted that details of other processesdescribed herein with respect to other methods and/or processesdescribed herein (e.g., methods 500, 600, 800, and 900) are alsoapplicable in an analogous manner to method 700 described above withrespect to FIG. 7.

FIG. 8 illustrates a flowchart diagram of a method 800 of locationsharing in accordance with some embodiments. In some embodiments, method800 is performed by a computing device (e.g., associated with a seconduser) with one or more processors and memory. For example, in someembodiments, method 800 is performed by client device 104 (FIGS. 1 and3) or a component thereof (e.g., client-side module 102, FIGS. 1 and 3).In some embodiments, method 800 is governed by instructions that arestored in a non-transitory computer readable storage medium and theinstructions are executed by one or more processors of the terminal.

In some embodiments, data processing for a social networking platform isimplemented in client-server environment 100 (FIG. 1) with a serversystem 108 and client-side module 102 executed on one or more clientdevices 104 (e.g., a first client device 104-1 associated with a firstuser (user XX) and a second client device 104-2 associated with a seconduser (user YY)). In some embodiments, server system 108 (FIGS. 1-2)manages and operates the social networking platform. In someembodiments, a respective client-side module 102 (FIGS. 1 and 3) isassociated with a user account in the social networking platform thatcorresponds to a user of client device 104 (FIGS. 1 and 3).

In the foregoing embodiments, both a text message and a picture messagemay be displayed in a conversation area in a social application. To makeit more convenient for a second user to participate in geographicallocation sharing, an information reminder box may further be set at alocation other than the conversation area in the social application, toinvite the second user to perform geographical location sharing, asshown in the following embodiments.

In some embodiments, the computing device outputs (802) an informationreminder box. In some embodiments, the information reminder box may belocated in a non-conversation area of a social application (e.g., anupper area of the social application). FIG. 4G, for examples, showssecond client device 104-2 displaying location sharing status banner4104 within chat interface 4102. In FIG. 4G, location sharing statusbanner 4104 indicates that user XX (i.e., the first user) has sharedhis/her real-time location with user YY (i.e., the second user) andfurther prompts user YY to share his/her real-time location with userXX.

In some embodiments, the computing device detects (804) a request from asecond user to participate in geographical location sharing based on theon the information reminder box. For example, the second user performsgeographical location sharing by clicking the information reminder box.FIG. 4G, for example, shows second client device 104-2 detecting contact4106 at a location corresponding to location sharing status banner 4104.

In some embodiments, the computing device acquires (806), according tothe request, geographical location information of the second user. Thegeographical location information of the second user may also bedisplayed in a location presentation page of a first user, so that thesecond user participates in geographical location sharing of the firstuser. The first user can view the geographical location information ofthe second user, and the second user can also view geographical locationinformation of the first user. FIG. 4J, for example, illustrates secondclient device 104-2 displaying a location interface in response todetecting selection of location sharing status banner in FIG. 4G. InFIG. 4J, the location interface includes the map with (A) firstindicator 476 showing the real-time location of user XX and avatar 442for user XX indicating that first indicator 476 corresponds to user XXand (B) second indicator 4122 showing the real-time location of user YYand avatar 420 for user YY indicating that first indicator 4122corresponds to user YY.

Furthermore, the information reminder box not only can be used as afunction key by the second user to perform geographical locationsharing, but also can present state information of the geographicallocation sharing. Through the information reminder box, the number ofpersons participating in geographical location sharing within theconversation can be presented, and a participation state of a user inthe conversation can also be presented. In the information reminder box,state information of geographical location sharing is presented by adifferent text or colors.

In one example, when someone in the conversation participates ingeographical location sharing, and the second user does not participate,an information reminder box seen by the second user is gray. If there isonly one participant participating in geographical location sharing, thetext in the information reminder box displays “xxx is sharing alocation” to show who is the sharer participating in geographicallocation sharing currently. If there is more than one participantparticipating in geographical location sharing, the text in theinformation reminder box displays “x persons are sharing locations” toshow the number of persons who participate in sharing currently. Inanother example, if the second user has already participated ingeographical location sharing, the information reminder box becomesgreen, and the text displays “you are sharing a location,” and may alsodisplay a flickering icon in the information reminder box to remind auser that a geographical location where the user is located may be seenby another person. Because the information reminder box can be used as ashortcut for the second user to perform geographical location sharing,when the second user does not perform geographical location sharing, thesecond user clicks the grey information reminder box to performgeographical location sharing, and when the second user is already in astate of geographical location sharing, the second user clicks the greeninformation reminder box to view the geographical location presentationpage.

Further, after the geographical location sharing information is used toenable a user to participate in geographical location sharing, the dataprocessing method further includes implementing switching between aconversation page and a location presentation page through theinformation reminder box, and specific steps are as follows: receiving aswitch request from a user in the conversation, where the switch requestincludes a first switch request and a second switch request; switchingfrom the conversation page to the location presentation page accordingto the first switch request; and switching from the locationpresentation page to the social application conversation page accordingto the second switch request, where the social application conversationpage switching and the geographical location sharing are performedsimultaneously through the switch request.

A click on an information reminder box by a user is received and used asa switch request of the user, where the first switch request is toswitch the conversation page to the location presentation page, and thesecond switch request is to switch the location presentation page to theconversation page. When the conversation page is displayed, the locationpresentation page may be displayed by clicking the information reminderbox, and when the location presentation page is displayed, the page maybe switched to the conversation page in time by clicking the informationreminder box. When conversation page is displayed, the location sharingbeing performed is not interrupted, the second user is still in thestate of geographical location sharing, and the first user may also viewthe geographical location of the second user. When the locationpresentation page is displayed, the conversation is also not ended, andwhen the location presentation page is displayed, conversation messagesmay be normally received. If a conversation message needs to be sentwithout interrupting geographical location sharing, the conversationmessage can be sent as long as the page is switched to the conversationpage. In addition, the geographical location sharing may also be quicklyended from the location presentation page (e.g., by selecting a shortcut“exit” key on location presentation page).

It should be understood that the particular order in which theoperations in FIG. 8 have been described is merely exemplary and is notintended to indicate that the described order is the only order in whichthe operations could be performed. One of ordinary skill in the artwould recognize various ways to reorder the operations described herein.Additionally, it should be noted that details of other processesdescribed herein with respect to other methods and/or processesdescribed herein (e.g., methods 500, 600, 700, and 900) are alsoapplicable in an analogous manner to method 800 described above withrespect to FIG. 8.

FIGS. 9A-9D illustrate a flowchart diagram of a method 900 offacilitating access to the Internet in accordance with some embodiments.In some embodiments, method 900 is performed by a computing device withone or more processors and memory. For example, in some embodiments,method 900 is performed by client device 104 (FIGS. 1 and 3) or acomponent thereof (e.g., client-side module 102, FIGS. 1 and 3). In someembodiments, method 900 is governed by instructions that are stored in anon-transitory computer readable storage medium and the instructions areexecuted by one or more processors of the computing device. Optionaloperations are indicated by dashed lines (e.g., boxes with dashed-lineborders).

In some embodiments, data processing for a social networking platform isimplemented in client-server environment 100 (FIG. 1) with a serversystem 108 and client-side module 102 executed on one or more clientdevices 104 (e.g., a first client device 104-1 associated with a firstuser (user XX) and a second client device 104-2 associated with a seconduser (user YY)). In some embodiments, server system 108 (FIGS. 1-2)manages and operates the social networking platform. In someembodiments, a respective client-side module 102 (FIGS. 1 and 3) isassociated with a user account in the social networking platform thatcorresponds to a user of client device 104 (FIGS. 1 and 3).

The computing device displays (902) a chat interface of a socialnetworking platform for a conversation between two or more usersincluding at least a first user and a second user, where the second useris associated with the computing device and the first user is associatedwith a device other than the computing device. FIG. 4G, for example,shows second client device 104-2 displaying a chat interface 4102between user YY (e.g., the user of second client device 104-2) and userXX (e.g., the user of first client device 104-1). In FIG. 4G, chatinterface 4102 also includes a plurality of messages between user YY anduser XX including messages 440-A, 440-D, and 440-E sent by user YY asindicated by avatar 420 adjacent to messages 440-A, 440-D, and 440-E andmessages 440-B, 440-C, and 440-F sent by user XX as indicated by avatar442 adjacent to messages 440-B, 440-C, and 440-F.

The computing device receives (904) a location-sharing request from thefirst user to the second user in the social networking platform to joina real-time location sharing group. For example, the first user andpossibly other users in the conversation have already joined thereal-time location sharing group. For example, FIGS. 4A-4J show thefirst user of first client device 104-1 (e.g., user XX) sending alocation-sharing request to the second user of second client device104-2 through chat interface 438 of the social networking platform,where chat interface 438 corresponds to the conversation between user XXand user YY.

In response to receiving (906) the location-sharing request, thecomputing device: displays (908) a respective message from the firstuser among a first set of one or more messages in a first region of thechat interface, where the respective message corresponds to the locationsharing request to join the real-time location sharing group; anddisplays (910) a location sharing status banner corresponding to atleast the location-sharing request from the first user in a secondregion of the chat interface, where the location sharing status banneris displayed with a first display characteristic indicating that thesecond user of the computing device has not yet joined the real-timelocation sharing group. FIG. 4G, for example, shows second client device104-2 displaying chat interface 4102 with message 440-F indicating thatuser XX (i.e., the first user) has shared his/her real-time locationwith user YY (i.e., the second user). In FIG. 4G, chat interface 4102also includes location sharing status banner 4104 indicating that userXX (i.e., the first user) has shared his/her real-time location withuser YY (i.e., the second user) and further prompts user YY to sharehis/her real-time location with user XX. For example, location sharingstatus banner 4104 in FIG. 4G is displayed with a gray background (e.g.,the first display characteristics) within the chat interface, where thegray background indicates that the second user of second client device104-1 has not shared his/her location so as to join the real-timelocation sharing group. Continuing with this example, after the seconduser of second client device 104-1 shares his/her location so as to jointhe real-time location sharing group, location sharing status banner4104 in FIG. 4K is displayed with a green background (e.g., the seconddisplay characteristic) within the chat interface. The aforementioneddisplay characteristic change of the location sharing status banner isillustrative and not meant to be limiting. One of ordinary skill in theart will appreciate, that the display characteristic of the locationsharing status banner may change in a multitude of different mannersafter the second user joins the real-time location sharing group.

In some embodiments, the first region is a dialogue region which showspast messages exchanged between the chat participants (e.g., the regionin FIG. 4G with messages 440 sent between user YY and user XX). Forexample, before the second user joins the group, the banner is gray(e.g., location sharing status banner 4104 in FIG. 4G), and, after thesecond user joins the group, the banner is green. In some embodiments,the banner includes an affordance to exit the real-time location sharinggroup. The banner can be overlaid on top of the dialogue region, ordisplayed above or below the dialogue region. In some embodiments,instead of a banner, some other user interface elements (e.g., a button,an icon) can be used to indicate the location sharing status of thesecond user. In some embodiments, the location sharing status may beused to represent multiple location sharing requests from multiple usersin the conversation. For example, respective messages from two or moreusers in the conversation may be independently displayed in the dialogueregion as the location sharing requests from each of the two or moreusers are received (e.g., message 440-F from user XX in FIG. 4G), andthe location sharing status banner is first displayed when a first suchlocation sharing request is received by the second user, and assubsequent location sharing requests are received from other users inthe same group (e.g., by those user joining in the location sharinggroup one by one), the location sharing status is maintained in the chatinterface. In some embodiments, the banner may be updated to show thetotal count and, optionally, identities of the users that have joinedthe real-time location sharing group. As time goes on, and as messagesare exchanged during the conversation, the messages corresponding to thelocation sharing requests may be pushed out of view from the chatinterface, but the location sharing status banner is maintained in thechat interface, such that the second user can select and join thereal-time location sharing group at any time.

In some embodiments, the computing device detects (912) a first userinput from the second user of the computing device selecting one of therespective message corresponding to the location sharing request fromthe first user in the first region of the chat interface and thelocation sharing status banner in the second region of the chatinterface. In some embodiments, in response to detecting the first userinput, the computing device: causes the second user to join thereal-time location sharing group; and displays a location interface ofthe social networking platform, where the location interface includes amap overlaid with a first indicator corresponding to a respectivereal-time location of the first user and a second indicatorcorresponding to a respective real-time location of the second user.FIG. 4J, for example, shows second client device 104-2 displaying alocation interface in response to detecting selection of locationsharing status banner in FIG. 4G or message 440-F in FIG. 4K. In FIG.4J, for example, the location interface includes the map with (A) firstindicator 476 showing the real-time location of user XX and avatar 442for user XX indicating that first indicator 476 corresponds to user XXand (B) second indicator 4122 showing the real-time location of user YYand avatar 420 for user YY indicating that first indicator 4122corresponds to user YY.

In some embodiments, the location interface includes a chat entry boxand chats received or sent while in the location interface appear aschat bubbles originating from the indicators overlaid on the map. Insome embodiments, the location interface includes a walkie-talkieactivation button (e.g., affordance 480 in FIG. 4J) whereby voice issent to the other users of the group while the walkie-talkie button isselected (e.g., by a press and hold gesture). In some embodiments, thefirst indicator (e.g., indicator 476 in FIG. 4J) and the secondindicator (e.g., indicator 4122 in FIG. 4J) each has a correspondingavatar displayed over it (e.g., avatars 442 and 420 in FIG. 4J) torepresent the identities of the first and second users, and the seconduser may dismiss the avatars by tapping elsewhere on the locationinterface. In some embodiments, the second user may zoom in on a user inthe group by tapping on their respective indicator or avatar in the map.In some embodiments, the indicators indicate the orientation or headingof the users. For example, in FIG. 4J, the pointed triangle ofindicators 476, 4122 indicate the orientation/heading of users XX andYY, respectively. In some embodiments, the indicators indicate whether auser is idle or in motion and also how fast they are moving. In someembodiments, the location interface also has an affordance to exit thereal-time location sharing group (e.g., affordance 472 in FIG. 4J). Insome embodiments, the location interface also includes an affordance forswitching back to the chat interface (e.g., affordance 474 in FIG. 4J).

When the user switches back to the chat interface before terminating thelocation sharing, the user may return to the location interface byselecting either the message (e.g., message 440-F in FIG. 4G)corresponding to the location sharing request of any of the users thatjoined the location sharing group, or by selecting the location-sharingstatus banner displayed in the chat interface (e.g., location sharingstatus banner 4104 in FIG. 4G). In some embodiments, the user may selectthe avatar or indicator of a particular user in the map interface toselect one or more operations specific to the user represented by theselected avatar or indicator, such as, sending a private message to thatuser, getting directions from the current location to that user, findingparticular businesses (e.g., restaurants, coffee shops, meeting spots,parking, etc.) near both the second user and the selected user, etc. Itis worth noting that, after the user selects the message correspondingto the location sharing request or the status banner to automaticallyjoin the location sharing group, when the user returns to the chatinterface, the appearance of the location sharing status banner would beupdated to reflect that the second user is currently sharing location inreal time.

In some embodiments, the computing device detects (914) a first userinput from the second user of the computing device selecting arespective one of the respective message corresponding to the locationsharing request and the location sharing status banner in the chatinterface. In some embodiments, in response to detecting the first userinput, the computing device: displays a location interface of the socialnetworking platform, where the location interface includes a mapoverlaid with a first indicator corresponding to a respective real-timelocation of the first user and a second indicator corresponding to arespective real-time location of the second user; and displays alocation sharing affordance for enabling the second user to join thereal-time location sharing group and sharing the respective real-timelocation of the second user to other users in the conversation. FIG. 4I,for example, shows second client device 104-2 displaying a locationinterface in response to detecting selection of location sharing statusbanner in FIG. 4G or message 440-F in FIG. 4K. In FIG. 4I, for example,the location interface includes the map with first indicator 476 showingthe real-time location of user XX and avatar 442 for user XX indicatingthat first indicator 476 corresponds to user XX. In FIG. 4I, thelocation interface also includes share affordance 4118 for sharing thereal-location of second client device 104-2 with user XX so as to jointhe real-time location sharing group.

In some embodiments, the first user cannot see the second user'sreal-time location until he/she joins the location sharing group. Insome embodiments, the second user cannot see the first user's real-timelocation until he/she joins the location sharing group. In someembodiments, when the second user selects the affordance (e.g., shareaffordance 4118 in FIG. 4I) to join the real-time location sharinggroup, a corresponding location sharing request is sent to the server,and a corresponding message from the second user is displayed in thechat interfaces of all participants of the conversation. In someembodiments, selection of the message (e.g., message 440-F in FIG. 4G)corresponding to a location sharing request will cause viewing only withan affordance e.g., share affordance 4118 in FIG. 4I) to join thereal-time location sharing group, while selection of the locationsharing status banner (e.g., location sharing status banner 4104 in FIG.4G) will causes automatic joining of the real-time location sharinggroup. In some embodiments, selection of the message corresponding to alocation sharing request will cause automatic joining of the real-timelocation sharing group, while selection of the location sharing statusbanner causes viewing only with an affordance to join the real-timelocation sharing group.

In some embodiments, in response to detecting the first user input, thecomputing device, displays (916) an interface switching affordance fordisplaying the chat interface in the location interface. In someembodiments, the computing device detects a second user input from thesecond user of the computing device selecting the interface switchingaffordance and, in response to detecting the second user input, displaysthe chat interface, where the location sharing banner is displayed inthe second region of the chat interface with a second displaycharacteristic indicating that the second user of the computing devicehas joined the real-time location sharing group. FIG. 4K, for example,shows second client device 104-1 displaying chat interface 4102 for theconversation between user YY (e.g., the user of second client device104-2) and user XX (e.g., the user of first client device 104-1) inresponse to detecting selection of affordance 474 in the locationinterface in FIG. 4J. After the second user of second client device104-1 shares his/her location so as to join the real-time locationsharing group, location sharing status banner 4104 in FIG. 4K isdisplayed with a green background (e.g., the second displaycharacteristic) within the chat interface, where the green backgroundindicates that the second user of second client device 104-1 has sharedhis/her location so as to join the real-time location sharing group.

In some embodiments, in response to detecting the first user input, thecomputing device displays (918) at least a first avatar corresponding tothe first user and a second avatar corresponding to the second user in aregion of the location interface distinct from the map. After the seconduser joins the location-sharing group, in FIG. 4J, for the locationinterface also includes region 4116 indicating that user XX is currentlysharing his/her location (as indicated by the presence of avatar 442 inregion 4116) and that user YY is currently sharing his/her location (asindicated by the presence of avatar 420 in region 4116). In someembodiments, the avatar is a user icon selected by a respective user. Insome embodiments, if a user has not selected a custom icon/avatar, thedefault avatar is a silhouette with the user's initials or user name(e.g., similar to avatar 420 in FIG. 4J). In some embodiments, theavatars displayed over the indicators on the map are the same as theavatars in the region outside the map (e.g., region 4116 in FIG. 4J). Insome embodiments, selection of the avatars of a particular subset of oneor more users in the region outside of the map in the location interfacecan cause the map to be re-centered, or zoomed in and/or out to show theindicators of the selected users in the map.

In some embodiments, the computing device detects (920) a second userinput from the second user of the computing device selecting the firstavatar and, in response to detecting the second user input, centers themap displayed in the first region of the location interface relative tothe first indicator corresponding to the real-time location of the firstuser. For example, with reference to FIG. 4J, the map will bere-centered on indicator 476 corresponding to user XX if the user ofsecond-client device selects avatar 442 in region 4116 (e.g., with a tapgesture). In some embodiments, the map may also be centered relative tothe second indicator corresponding to the second user or relative to anyother user in the group.

In some embodiments, in response to detecting a scrolling gesture, thecomputing device displays (922) a second set of one or more messages inthe first region of the chat interface, where the second set of one ormore messages includes at least one message not included in the firstset of one or more messages and corresponding to a previous locationsharing request from a respective one of the two or more users. In someembodiments, the computing device detects a first user input from thesecond user of the computing device selecting the at least one messagein the second set of one or more messages displayed in the first regionof the chat interface and, in response to detecting the first userinput, displays a location interface of the social networking platform,where the location interface includes a map overlaid with a firstindicator corresponding to a respective real-time location of therespective one of the two or more users and a second indicatorcorresponding to a respective real-time location of the second user. InFIG. 4H, for example, second device 104-2 displays chat interface 4102with at least one message not displayed in FIG. 4G in response todetecting the downwards dragging gesture to scroll chat interface 4102in FIG. 4G. Subsequently, FIG. 4H, for example, shows second clientdevice 104-2 detecting contact 4114 at a location corresponding tomessage 440-A (e.g., an old location sharing request). FIG. 4I, forexample, shows second client device 104-2 displaying a locationinterface in response to detecting selection of message 440-A in FIG.4H.

In some embodiments, in response to detecting the first user input andprior to displaying the first indicator corresponding to the respectivereal-time location of the respective one of the two or more users andthe second indicator corresponding to the respective real-time locationof the second user on the map in the location interface of the socialnetworking platform, the computing device displays (924) a previouslocation indicator on the map, where the previous location indicatorcorresponds to a previous location of the respective one of the two ormore users corresponding to the selected at least one message in thesecond set of one or more messages. In some embodiments, after selectingan old message corresponds to a location sharing request, the locationof the first and/or second user at the time the selected old message wassent/received is shown in the location interface before showing thereal-time locations of the first and/or second user.

In some embodiments, in response to detecting the first user input andprior to displaying the first indicator corresponding to the respectivereal-time location of the respective one of the two or more users andthe second indicator corresponding to the respective real-time locationof the second user on the map in the location interface of the socialnetworking platform, the computing device determines (926) whether therespective one of the two or more users has exited the real-timelocation sharing group.

In some embodiments, displaying the previous location indicator on themap further comprises (928) displaying the previous location indicatorat a last-known location of the respective one of the two or more usersin the map in accordance with a determination that the respective one ofthe two or more users has exited the real-time location sharing group.For example, if the sender of the selected message is no longer part ofthe real-time location sharing group, the computing device displays thelast known location of the sender (e.g., the location of the sender atthe time the selected message was sent or a subsequent location) in thelocation interface.

In some embodiments, displaying the previous location indicator on themap further comprises (930) displaying an animation showing a movementof the previous location indicator from a last-viewed location to acurrent location of the respective one of the two or more users in themap in accordance with a determination that the respective one of thetwo or more users has not exited the real-time location sharing group.For example, if the sender of the selected message is still part of thereal-time location sharing group, the computing device displays the lastknown location of the sender (e.g., the location of the sender at thetime the selected message was sent or a subsequent location) in thelocation interface and an animation estimating the sender's path to thesender's current real-time location.

It should be understood that the particular order in which theoperations in FIGS. 9A-9D have been described is merely exemplary and isnot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to reorder the operations describedherein. Additionally, it should be noted that details of other processesdescribed herein with respect to other methods and/or processesdescribed herein (e.g., methods 500, 600, 700, and 800) are alsoapplicable in an analogous manner to method 900 described above withrespect to FIGS. 9A-9D.

FIG. 10 is a block diagram of an apparatus 1000 for location sharing inaccordance with some embodiments. In some embodiments, apparatus 1000may be implemented in whole or in part by software, hardware, or acombination thereof. For example, apparatus 1000 corresponds to clientdevice 104 (FIGS. 1 and 3) or a component thereof (e.g., client-sidemodule 102, FIGS. 1 and 3). In some embodiments, apparatus 1000includes: detection module 1010, output module 1020, and acquisitionmodule 1030.

In some embodiments, detection module 1010 is configured to determinewhether location sharing information exists in a conversation, where thelocation sharing information is geographical location information sharedby a first user in the social application. The conversation may be aninstant messaging conversation between two or more users within a socialapplication. If the first user initiates geographical location sharing,detection module 1010 may detect geographical location sharinginformation. The geographical location sharing information is thegeographical location information shared by the first user, and thegeographical location sharing information may prompt the user ofapparatus 1000 (i.e., the second user) to share geographical locationinformation.

In some embodiments, output module 1020 is configured to output alocation sharing invitation if the conversation includes the locationsharing information. In some embodiments, output module 1020 alsoincludes: a first output unit 1022, a second output unit 1024, and/or athird output unit 1026.

In some embodiments, first output unit 1022 is configured to output atext message within the conversation. For further discuss of the textmessage, see FIG. 6 and the accompanying text.

In some embodiments, second output unit 1024 is configured to output apicture message within the conversation. For further discuss of thepicture message, see FIG. 7 and the accompanying text.

In some embodiments, third output unit 1026 is configured to output aninformation reminder box. For further discuss of the informationreminder box, see FIG. 8 and the accompanying text.

In some embodiments, acquisition module 1030 is configured to acquiregeographical location information based on the output geographicallocation sharing invitation. In some embodiments, acquisition module1030 also includes: a receiving unit 1032, a display unit 1034, and anacquisition unit 1036.

In some embodiments, receiving unit 1032 is configured to receive arequest from to participate in geographical location sharing based onthe text message, picture message, or information reminder box.

In some embodiments, display unit 1034 is configured to display alocation presentation page with the geographical location information.

In some embodiments, acquisition unit 1036 is configured to acquiregeographical location information of the user of apparatus 1000according to the request received by receiving unit 1032.

While particular embodiments are described above, it will be understoodit is not intended to limit the application to these particularembodiments. On the contrary, the application includes alternatives,modifications and equivalents that are within the spirit and scope ofthe appended claims. Numerous specific details are set forth in order toprovide a thorough understanding of the subject matter presented herein.But it will be apparent to one of ordinary skill in the art that thesubject matter may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail so as not to unnecessarily obscure aspectsof the embodiments.

What is claimed is:
 1. A method of sharing real-time location amongusers of a social networking platform, the method comprising: at acomputing device with one or more processors and memory: displaying achat interface between a first user and a second user, wherein thesecond user is associated with the computing device and the first useris associated with a device other than the computing device; receiving alocation-sharing request from the first user to the second user to joina real-time location sharing group, and displaying, in the chatinterface, a location-sharing message corresponding to the locationsharing request to join the real-time location sharing group; detectinga first user input on the location-sharing message from the second userof the computing device; and in response to detecting the first userinput: replacing the chat interface with a location interface of thesocial networking platform, wherein the location interface includes amap overlaid with a first indicator corresponding to a respectivereal-time location of the first user and a second indicatorcorresponding to a respective real-time location of the second user. 2.The method of claim 1, wherein the location interface further includes alocation-sharing exit affordance, the method further comprising:detecting a second user input on the location-sharing exit affordancefrom the second user of the computing device; and in response todetecting the second user input: ceasing to send the respectivereal-time location of the second user to the first user; and replacingthe location interface with the chat interface, wherein the chatinterface includes a location sharing status banner corresponding to thelocation-sharing request from the first user.
 3. The method of claim 1,wherein the location interface further includes an interface switchingaffordance, the method further comprising: detecting a third user inputon the interface switching affordance from the second user of thecomputing device; and in response to detecting the third user input:switching from the location interface back to the chat interface; anddisplaying, in the chat interface, a location sharing status bannerindicating continuous sharing of the respective real-time location ofthe second user to the first user.
 4. The method of claim 1, furthercomprising: displaying a set of messages in the chat interface, whereinthe set of messages includes an old location sharing messagecorresponding to a previous location sharing request from the firstuser; detecting a fourth user input on the old location sharing messagefrom the second user of the computing device; and in response todetecting the first user input: replacing the chat interface with alocation interface including a map; and displaying, on the map in thelocation interface, a previous location indicator corresponding to aprevious location of the first user when the previous location sharingrequest was received by the computing device.
 5. The method of claim 4,wherein displaying the previous location indicator on the map furthercomprises: in accordance with a determination that the first user hasexited the real-time location sharing request, displaying the previouslocation indicator at a last-known location of the first user on themap.
 6. The method of claim 4, wherein displaying the previous locationindicator on the map further comprises: in accordance with adetermination that the first user has not exited the real-time locationsharing request, displaying an animation showing a movement of theprevious location indicator from a last-known location of the first userto the current location of the first user on the map.
 7. A computingdevice for sharing real-time location among users of a social networkingplatform, comprising: one or more processors; and memory storing one ormore programs to be executed by the one or more processors, the one ormore programs comprising instructions for: displaying a chat interfacebetween a first user and a second user, wherein the second user isassociated with the computing device and the first user is associatedwith a device other than the computing device; receiving alocation-sharing request from the first user to the second user to joina real-time location sharing group, and displaying, in the chatinterface, a location-sharing message corresponding to the locationsharing request to join the real-time location sharing group; detectinga first user input on the location-sharing message from the second userof the computing device; and in response to detecting the first userinput: replacing the chat interface with a location interface of thesocial networking platform, wherein the location interface includes amap overlaid with a first indicator corresponding to a respectivereal-time location of the first user and a second indicatorcorresponding to a respective real-time location of the second user. 8.The computing device of claim 7, wherein the location interface furtherincludes a location-sharing exit affordance, and the one or moreprograms further comprise instructions for: detecting a second userinput on the location-sharing exit affordance from the second user ofthe computing device; and in response to detecting the second userinput: ceasing to send the respective real-time location of the seconduser to the first user; and replacing the location interface with thechat interface, wherein the chat interface includes a location sharingstatus banner corresponding to the location-sharing request from thefirst user.
 9. The computing device of claim 7, wherein the locationinterface further includes a location-sharing exit affordance, and theone or more programs further comprise instructions for: detecting athird user input on the interface switching affordance from the seconduser of the computing device; and in response to detecting the thirduser input: switching from the location interface back to the chatinterface; and displaying, in the chat interface, a location sharingstatus banner indicating continuous sharing of the respective real-timelocation of the second user to the first user.
 10. The computing deviceof claim 7, wherein the one or more programs further compriseinstructions for: displaying a set of messages in the chat interface,wherein the set of messages includes an old location sharing messagecorresponding to a previous location sharing request from the firstuser; detecting a fourth user input on the old location sharing messagefrom the second user of the computing device; and in response todetecting the first user input: replacing the chat interface with alocation interface including a map; and displaying, on the map in thelocation interface, a previous location indicator corresponding to aprevious location of the first user when the previous location sharingrequest was received by the computing device.
 11. The computing deviceof claim 10, wherein the instruction for displaying the previouslocation indicator on the map further comprises: in accordance with adetermination that the first user has exited the real-time locationsharing request, displaying the previous location indicator at alast-known location of the first user on the map.
 12. The computingdevice of claim 10, wherein the instruction for displaying the previouslocation indicator on the map further comprises: in accordance with adetermination that the first user has not exited the real-time locationsharing request, displaying an animation showing a movement of theprevious location indicator from a last-known location of the first userto the current location of the first user on the map.
 13. Anon-transitory computer readable storage medium storing one or moreprograms for sharing real-time location among users of a socialnetworking platform, the one or more programs comprising instructions,which, when executed by a computing device with one or more processors,cause the computing device to perform operations including: displaying achat interface between a first user and a second user, wherein thesecond user is associated with the computing device and the first useris associated with a device other than the computing device; receiving alocation-sharing request from the first user to the second user to joina real-time location sharing group, and displaying, in the chatinterface, a location-sharing message corresponding to the locationsharing request to join the real-time location sharing group; detectinga first user input on the location-sharing message from the second userof the computing device; and in response to detecting the first userinput: replacing the chat interface with a location interface of thesocial networking platform, wherein the location interface includes amap overlaid with a first indicator corresponding to a respectivereal-time location of the first user and a second indicatorcorresponding to a respective real-time location of the second user. 14.The non-transitory computer readable storage medium of claim 13, whereinthe location interface further includes a location-sharing exitaffordance, and the one or more programs further comprise instructionsfor: detecting a second user input on the location-sharing exitaffordance from the second user of the computing device; and in responseto detecting the second user input: ceasing to send the respectivereal-time location of the second user to the first user; and replacingthe location interface with the chat interface, wherein the chatinterface includes a location sharing status banner corresponding to thelocation-sharing request from the first user.
 15. The non-transitorycomputer readable storage medium of claim 13, wherein the locationinterface further includes a location-sharing exit affordance, and theone or more programs further comprise instructions for: detecting athird user input on the interface switching affordance from the seconduser of the computing device; and in response to detecting the thirduser input: switching from the location interface back to the chatinterface; and displaying, in the chat interface, a location sharingstatus banner indicating continuous sharing of the respective real-timelocation of the second user to the first user.
 16. The non-transitorycomputer readable storage medium of claim 13, wherein the one or moreprograms further comprise instructions for: displaying a set of messagesin the chat interface, wherein the set of messages includes an oldlocation sharing message corresponding to a previous location sharingrequest from the first user; detecting a fourth user input on the oldlocation sharing message from the second user of the computing device;and in response to detecting the first user input: replacing the chatinterface with a location interface including a map; and displaying, onthe map in the location interface, a previous location indicatorcorresponding to a previous location of the first user when the previouslocation sharing request was received by the computing device.
 17. Thenon-transitory computer readable storage medium of claim 16, wherein theinstruction for displaying the previous location indicator on the mapfurther comprises: in accordance with a determination that the firstuser has exited the real-time location sharing request, displaying theprevious location indicator at a last-known location of the first useron the map.
 18. The non-transitory computer readable storage medium ofclaim 16, wherein the instruction for displaying the previous locationindicator on the map further comprises: in accordance with adetermination that the first user has not exited the real-time locationsharing request, displaying an animation showing a movement of theprevious location indicator from a last-known location of the first userto the current location of the first user on the map.